<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Selecties extends CI_Controller {

    //array met provincies om te kijken in welke province welke gemeente zit.
    private $province = array(
        '0' => 'Drenthe',
        '1' => 'Flevoland',
        '2' => 'Friesland',
        '3' => 'Gelderland',
        '4' => 'Groningen',
        '5' => 'Limburg',
        '6' => 'Noord-Brabant',
        '7' => 'Noord-Holland',
        '8' => 'Overijssel',
        '9' => 'Utrecht',
        '10' => 'Zeeland',
        '11' => 'Zuid-Holland',
        '12' => 'Zeeland'
    );

    function Selecties() {
        parent::__construct();
        $this->load->model('community_model');
        $this->load->model('selection_model');
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->library('session');
    }

    function index() {
        $community = $this->input->post('community');
        $year = $this->input->post('year');
        $data = '';


        $data['community'] = Community_model::communities();
        $data['year'] = Community_model::community_years();
        $data['maxyear'] = Community_model::maxyears();


        $session = Community_model::community_session($community, $year);

        //checken of de opgegeven gemeente en jaar uit stap 1 wel bestaan
        if ($session->num_rows() > 0) {

            //nummer van de provincie ophalen om door de province array te halen.
            $p = Community_model::getProvince($community);
            $prov = $p->row();


            //eigen gemeente sessie word aangemaakt
            foreach ($session->result() as $row) {
                $data = array(
                    'gemeente' => $community,
                    'provincie' => $this->province[$prov->Provincie],
                    'inwoners' => $row->Inwoners,
                    'jaar' => $row->jaar,
                    'sociaal' => $row->Sociaal,
                    'centrum' => $row->Centrum,
                );
            }
            $this->session->set_userdata($data);

            $data['page'] = 'include/selections';
        } else {
            //anders komt er een melding te staan op stap 1
            if ($this->session->userdata('gemeente') == FALSE) {
                if ($community != null || $year != null) {
                    $data['page'] = 'include/own_community';
                    $data['errormsg'] = 'de geselecteerde gemeente heeft geen gegevens uit dat jaar.';
                } else {
                    $data['page'] = 'include/own_community';
                    $data['errormsg'] = 'kies een gemeente.';
                }
            } else {

                $data['page'] = 'include/selections';
            }
        }

        $this->load->view('main', $data);
    }

    function resultaten() {
        $data['provinces'] = $this->province;
        $social = $this->input->post('social');
        $central = $this->input->post('central');
        $population = $this->input->post('population');
        $year = $this->session->userdata('jaar');
        $data['query'] = '';
        $data['counter'] = '';
        $data['pageName'] = '';
        $data['pageName'] = 'advancedSearch';

        //alle mogelijke combinaties bij de "filter" in stap 2
        if (($social != 'sociale structuur' && !empty($social)) || ($central != 'centrum functie' && !empty($central)) || ($population != 'inwoners' && !empty($population))) {
            if ($social != 'sociale structuur' && $central != 'centrum functie' && $population != 'inwoners') {
                $data['query'] = Community_model::bigSelection($year, $social, $central, $population);
            } else if ($social != 'sociale structuur' && $central != 'centrum functie') {
                $data['query'] = Community_model::socialCentralSelection($year, $social, $central);
            } else if ($social != 'sociale structuur' && $population != 'inwoners') {
                $data['query'] = Community_model::socialPopulationSelection($year, $social, $population);
            } else if ($central != 'centrum functie' && $population != 'inwoners') {
                $data['query'] = Community_model::centralPopulationSelection($year, $central, $population);
            } else if ($social != 'sociale structuur') {
                $data['query'] = Community_model::socialSelection($year, $social);
            } else if ($central != 'centrum functie') {
                $data['query'] = Community_model::centralSelection($year, $central);
            } else if ($population != 'inwoners') {
                $data['query'] = Community_model::populationSelection($year, $population);
            }

            //counter die word meegegeven om te kijken hoeveel selecties er zijn gemaakt.
            if ($this->session->userdata('counter') !== FALSE) {
                $data['counter'] = $this->session->userdata('counter');
            } else {
                $data['counter'] = 0;
            }
            
            $data['page'] = 'include/results';
        } else {
            $data['page'] = 'include/selections';
            $data['errormsg'] = 'U heeft geen criteria gegeven.';
        }
        $this->load->view('main', $data);
    }

    function zoeken() {
        $search = $this->input->post('search');
        $year = $this->session->userdata('jaar');
        $data['counter'] = '';
        $data['query'] = '';

        //checken of de gebruiker is ingelogged.
        if ($this->session->userdata('user') !== FALSE) {
            if ($search !== FALSE) {
                
                //query word uitgevoerd als er data staat in het zoekveld
                $searchResults = Community_model::search($year, $search);
                $data['query'] = $searchResults;
                
                //melding voor wanneer de gemeente niet bestaat die is ingevoerd
                if($searchResults->num_rows() == 0){
                    $data['errormsg'] = 'deze gemeente bestaat niet.';                    
                }
                
                //counter bijhouden voor de selecties
                if ($this->session->userdata('counter') !== FALSE) {
                    $data['counter'] = $this->session->userdata('counter');
                } else {
                    $data['counter'] = 0;
                }
            } else {
                $data['query'] = Community_model::searchList($year);
                if ($this->session->userdata('counter') !== FALSE) {
                    $data['counter'] = $this->session->userdata('counter');
                } else {
                    $data['counter'] = 0;
                }
            }
        } else {
            //anders melding
            $data['errormsg'] = 'U bent niet ingelogt.';
        }

        $data['pageName'] = 'search';
        $data['page'] = 'include/results';


        $this->load->view('main', $data);
    }

    function toevoegen() {
        //functie voor het toevoegen van selecties
        
        $community = $_POST['community'];
        $year = $this->session->userdata('jaar');
        $counter = $_POST['counter'];

        //overige data ophalen van gemeente uit query
        $postdata = Community_model::search($year, $community);
        $social = $postdata->row()->Sociaal;
        $central = $postdata->row()->Centrum;
        $population = $postdata->row()->Inwoners;
        $provincepost = $this->province[$postdata->row()->Provincie];



        //checken of er data is gepost
        if ($_SERVER['REQUEST_METHOD'] == "POST") {

            //als de counter 3 is, word er niets meer toegevoegd
            if ($counter < 3) {
                $counter++;

                $data = array(
                    'gemeente' . $counter => $community,
                    'provincie' . $counter => $provincepost,
                    'inwoners' . $counter => $population,
                    'jaar' . $counter => $year,
                    'sociaal' . $counter => $social,
                    'centrum' . $counter => $central,
                    'counter' => $counter
                );
                $this->session->set_userdata($data);
            }
        }
    }

    function verwijderSelectie() {
        //functie voor het verwijderen van selecties bij stap 2
        if ($this->uri->segment(3, 0)) {
            $selection = $this->uri->segment(3);
            if ($selection > 0 && $selection <= 3) {
                Selection_model::deleteSelectionSession($selection);
            } else {

                $data['errormsg'] = 'Deze selectie bestaat niet.';
            }
        }
        $data['page'] = 'include/selections';
        $this->load->view('main', $data);
    }

    function verwijderJquerySelectie() {
        //functie voor het wegklikken van een selectie op de resultaten pagina.
        $community = $_POST['community'];
        Selection_model::deleteJquerySelectionSession($community);
    }

}